Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates Ionide.LanguageServerProtocol to 0.4.20 #1190

Merged
merged 1 commit into from
Oct 29, 2023

Conversation

TheAngryByrd
Copy link
Member

@TheAngryByrd TheAngryByrd commented Oct 29, 2023

WHAT

🤖 Generated by Copilot at aec71e3

Updated the Ionide.LanguageServerProtocol dependency to fix a request cancellation bug. This package enables FsAutoComplete to communicate with editors using the Language Server Protocol.

🤖 Generated by Copilot at aec71e3

Ionide updated
Fixing a bug in requests
Autumn leaves cancel

🛠️⬆️🗣️

WHY

ionide/LanguageServerProtocol#57

@baronfel :

Nice. After we do this we should look at our customizations to the RPC we create in FSAC - we may not need some of the workarounds there anymore.

What were you thinking of exactly?

HOW

🤖 Generated by Copilot at aec71e3

  • Update the minimum version of the Ionide.LanguageServerProtocol package to 0.4.20 to fix a bug related to request cancellation (link)

@baronfel
Copy link
Contributor

Is this tracing strategy still required? if not I think we could fallback to the createRpc call that Ionide.LanguageServerProtocol provides compeltely?

@baronfel
Copy link
Contributor

And even if we do need to make customizations to the RPC, we could wrap the defaultRpc from Ionide.LSP like this instead or something:

Ionide.LanguageServerProtocol.Server.defaultRpc
>> (fun rpc -> 
  rpc.ActivityTracingStrategy <- ActivityTracingStrategy(Tracing.fsacActivitySource)
)

to make it super clear what behaviors we were modifying (and also reduce code duplication for the serialization fixes you just comitted).

@TheAngryByrd
Copy link
Member Author

TheAngryByrd commented Oct 29, 2023

The main issue comes down to we still have to override IsFatalException. F# doesn't support object expression after an object is already created. Maybe there's syntax to do it but I can't seem to make it happen. (something something composition over inheritence)

We could move all those logic to the LSP project. The tradeoff here is if we discover an exception we want to handle, we always to make changes elsewhere and may not actually be applicable to all LSP consumers.

@baronfel
Copy link
Contributor

Ugh, that's gross indeed. Thanks for taking the time to dig into it.

@baronfel baronfel merged commit 4decfe3 into ionide:main Oct 29, 2023
12 of 13 checks passed
nojaf pushed a commit to nojaf/FsAutoComplete that referenced this pull request Nov 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants